As a data compression technique, there is known a dictionary-type compression method such as LZ78 or LZW.
There is a data compression device which divides an input data into, for example, data blocks having data lengths of 8 bytes, 4 bytes, and 2-bytes and contracts dictionaries corresponding to the data lengths in a nest-shaped hierarchical structure.
High-speed, high-accuracy data compression can be implemented by dividing an input data into data blocks having predetermined data lengths and using dictionaries generated for patterns of the data lengths. In addition, by increasing the number of patterns of the data lengths, it is possible to further improve performance. However, if the number of patterns of the data lengths is increased, the number of dictionaries corresponding to the patterns is increased, and thus, in some cases, a physical storage area required for storing the dictionaries is increased.